package com.ruoyi.generator;

import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;

import java.util.Collections;

public class plus {
    /**
     * <dependency>
     * <groupId>com.baomidou</groupId>
     * <artifactId>mybatis-plus-generator</artifactId>
     * <version>3.5.1</version>
     * </dependency>
     *
     * <dependency>
     * <groupId>org.apache.velocity</groupId>
     * <artifactId>velocity-engine-core</artifactId>
     * <version>2.3</version>
     * </dependency>
     * <p>
     * 使用之前先导入依赖
     */

    public static void main(String[] args) {
        // 数据库配置
        String url = "jdbc:mysql://8.129.39.197:3306/ry_20220822?useUnicode=true&serverTimezone=GMT&useSSL=false&characterEncoding=utf8";
        String username = "root";
        String password = "suguotong*583*";
        // 作者名字
        String author = "sgt";
        // 包信息，如果想和若依的文件分离开来,把web改成自己的包就好了
        String packageName = "com.ruoyi.web";
        // 表名字，多张表，逗号隔开
        String[] tables = {"aaa", "bbb"};
        // 本项目路径
        String projectPath = System.getProperty("user.dir");
        // 包绝对路径
        String outputDir = projectPath;
        // xml文件路径
        String outputDirMapper = projectPath + "/ruoyi-system/src/main/resources/mapper";
        FastAutoGenerator
                .create(url, username, password)
                .globalConfig(builder -> {
                    builder.author(author) // 设置作者
//                             .enableSwagger() // 开启 swagger 模式
                            .fileOverride() // 覆盖已生成文件
                            .outputDir(outputDir); // 指定输出目录
                })
                .packageConfig(builder -> {
                    // 如果想和若依的文件分离开来,把web改成自己的包就好了
                    builder.parent(packageName)// 设置父包名
                            // 控制层路径
                            .controller("/ruoyi-admin/src/main/java/com/ruoyi/web/controller")
                            // 服务层路径
                            .service("/ruoyi-system/src/main/java/com/ruoyi/web/service")
                            // 服务实现层路径
                            .serviceImpl("ruoyi-system/src/main/java/com/ruoyi/web/service/impl")
                            // 实例层路径
                            .entity("/ruoyi-system/src/main/java/com/ruoyi/web/domain")
                            // 持久层路径
                            .mapper("/ruoyi-system/src/main/java/com/ruoyi/web/mapper")
                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml, outputDirMapper)); // 设置mapperXml生成路径。注释不生成xml
                })
                .strategyConfig(builder -> {
                    builder.addInclude(tables); // 设置需要生成的表名
                    // .addTablePrefix("t_", "c_"); // 设置过滤表前缀
                })
                //.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板，默认的是Velocity引擎模板
                .execute();

    }

}
